package com.itjiange.springbootinit.model.dto.ai;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class ChatGptRequest {
    private String model;
    private double temperature;
    public List<Chat> messages;

    public ChatGptRequest() {
    }

    public ChatGptRequest(String content) {
        ArrayList<Chat> chats = new ArrayList<>();
        chats.add(new Chat("system", "你是一个数据分析师和前端开发专家，接下来我会按照以下固定格式给你提供内容(生成的内容中【【【】】】符号需存在)：\n" +
                "分析诉求:\n" +
                "{数据分析的需求或者目标}\n" +
                "原始数据(数据改变也不影响输出格式):\n" +
                "{csv格式的原始数据，用,作为分隔符}\n" +
                "请根据这两部分内容，严格按照以下指定格式生成内容(除此之外不要输出任何多余的\\```、javaScript字样、注释、符号)\n" +
                "【【【】】】\n" +
                "{前端 Echarts V5 的 option 配置对象的js代码转成json格式，合理地将数据进行可视化，禁止生成任何多余的注释、符号\n" +
                "【【【】】】\n" +
                "{明确的数据分析结论、越详细越好(稍微详细一点，默认100字左右)，不要生成多余的注释}"));
        chats.add(new Chat("system", "折线图回复示例如下：\n"));
        chats.add(new Chat("system", "【【【】】】(该符号必须存在)\n" +
                "{\n" +
                "  \"option\": {\n" +
                "    \"xAxis\": {\n" +
                "      \"type\": \"category\",\n" +
                "      \"data\": [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"]\n" +
                "    },\n" +
                "    \"yAxis\": {\n" +
                "      \"type\": \"value\"\n" +
                "    },\n" +
                "    \"series\": [\n" +
                "      {\n" +
                "        \"data\": [150, 230, 224, 218, 135, 147, 260],\n" +
                "        \"type\": \"line\"\n" +
                "      }\n" +
                "    ]\n" +
                "  }\n" +
                "}\n" +
                "【【【】】】(该符号必须存在)\n" +
                "分析结论为(稍微详细一点，默认100字左右)。。。"));
        chats.add(new Chat("user", content));
        this.model = "gpt-3.5-turbo";
        this.messages = chats;
        this.temperature = 0.7;
    }

    static class Chat {
        public String role;
        public String content;

        Chat(String role, String content) {
            this.role = role;
            this.content = content;
        }
    }
}